package zhiHu;

import java.util.HashSet;
import java.util.Set;

/**
 * Created by sheny on 2017/1/11.
 * 数据不重复且快速查找
 */
public class SpiderQueue {
    /**
     * 已访问的url集合
     */
    private static Set<Object> visitedUrl = new HashSet<Object>();

    /**
     * 添加到visitedUrl中
     */
    public static void insVisited(Object o){
        visitedUrl.add(o);
    }
    /**
     * 从visitedUrl中移除
     */
    public static void delVisited(Object o){
        visitedUrl.remove(o);
    }

    /**
     * 待访问的url集合，即unVisited表
     */
    private static Queue unVisitedUrl = new Queue();

    /**
     * 获得UnVisited队列
     */
    public static Queue getUnVisitedUrl() {
        return unVisitedUrl;
    }

    /**
     * 未访问的unVisitedUrl出队列
     */
    public static Object unVisitedUrlDeQueue() {
        return unVisitedUrl.delQueue();
    }

    /**
     * 保证添加url到unVisitedUrl的时候每个 URL只被访问一次
     */
    public static void addUnvisitedUrl(String url) {
        if (url != null && !url.trim().equals("") && !visitedUrl.contains(url)
                && !unVisitedUrl.contains(url))
            unVisitedUrl.insQueue(url);
    }

    /**
     * 判断未访问的 URL队列中是否为空
     */
    public static boolean unVisitedUrlsEmpty() {
        return unVisitedUrl.isQueueEmpty();
    }

}
